# 起源: https://docs.python.org/zh-cn/3/library/stdtypes.html#string-methods
# 1、str.capitalize()
# 返回原字符串的副本，首个字母大写 其他小写
a_low = 'this is all lower string'
a_upper = 'THIS IS ALL UPPER STRING'
low_a_upper = 'this is lower AND UPPER STRING'

print(a_low.capitalize())
print(a_upper.capitalize())

# 2、str.casefold()
# 返回源字符串消除大小写的副本，消除大小写的字符可以用于忽略大小写的匹配
# 实际是全部转化为小写，而且比lower()更加彻底
print(low_a_upper.casefold())

# 3、str.center(width[, fillchar]) str.ljust(width[, fillchar]) str.rjust(width[, fillchar])
# 返回长度为width的新字符串，源字符串位于其正中
# fillchar参数指定str左右的填充字符，默认为空格，注意长度为1
# 如果width小于str的长度，则直接返回源字符串
print('skt'.center(20, '-'))

# 4、str.count(sub[, start[, end]])
# 返回字符串sub在str[start:end]中非重叠出现的次数
print(a_low.count('t'))
print(a_low.count('t', 0, 3))

# 5、str.encode(encoding='utf-8, errors='strict')
# 返回字符串的字节串对象版本

# 6、str.endswith(suffix[, start[, end]])
# 如果str[start:end]以制定的suffix结束，则返回True，否则返回False。
# suffix可以是可供查找的后缀元组
print('003.gif'.endswith(('jpg', 'png', 'gif')))

# 7、str.find(sub[, start[, end]])
# 返回str[start:end]切片内找到的最小索引。
# 如果sub在切片内未找到，则返回-1
print(a_low.find('T'))
print(a_low.find('i'))

# 8、str.index(sub[, start[, end]])
# 返回str[start:end]切片内sub的最小索引
# 如果sub在切片内未找到，则引发ValueError
print(a_low.index('i'))
# print(a_low.index('T')) raise ValueError: substring not found

# 9、str.isalnum() str.isalpha() str.isdigit() str.islower() str.isspace()
# 如果str中至少有一个字符且都 是数字或字母/是字母/是数字/是小写/是空格 则返回True，否则返回False



